/**
 * 迭代器模块
 * License: BSD
 * Authors: Lucifer (786325481@QQ.com)
 * Copyright: Copyright (C) 2008 Lucifer. All rights reserved.
 */

module system.collections.IEnumerable;

import system.collections.IEnumerator;

/** Base interface for providing generic iterator. */
public interface IEnumerable(T)
{
    /**
     * This IEnumerator!(T) provides a simple way to access
     * all the contents of a collection.
     */
    IEnumerator!(T)  getEnumerator();

    /** Provides a implemention of foreach */
    int opApply (int delegate (ref T value) dg);
}
